/**
 * 格式化日期
 * @param {Date|number|string} date - 日期对象、时间戳或日期字符串
 * @param {string} format - 格式化模式，YYYY年，MM月，DD日，HH时，mm分，ss秒
 * @returns {string} - 格式化后的日期字符串
 */
export function formatDate(date, format = 'YYYY-MM-DD') {
	// 转换成Date对象
	const dateObj = date instanceof Date ? date : new Date(date)

	// 如果是无效日期，返回空字符串
	if (isNaN(dateObj.getTime())) {
		return ''
	}

	const year = dateObj.getFullYear()
	const month = dateObj.getMonth() + 1
	const day = dateObj.getDate()
	const hours = dateObj.getHours()
	const minutes = dateObj.getMinutes()
	const seconds = dateObj.getSeconds()

	// 补零函数
	const padZero = num => num.toString().padStart(2, '0')

	return format
		.replace(/YYYY/g, year)
		.replace(/MM/g, padZero(month))
		.replace(/DD/g, padZero(day))
		.replace(/HH/g, padZero(hours))
		.replace(/mm/g, padZero(minutes))
		.replace(/ss/g, padZero(seconds))
}

/**
 * 格式化文件大小
 * @param {number} size - 文件大小（字节）
 * @returns {string} - 格式化后的文件大小
 */
export function formatFileSize(size) {
	if (size < 1024) {
		return size + ' B'
	} else if (size < 1024 * 1024) {
		return (size / 1024).toFixed(2) + ' KB'
	} else if (size < 1024 * 1024 * 1024) {
		return (size / (1024 * 1024)).toFixed(2) + ' MB'
	} else {
		return (size / (1024 * 1024 * 1024)).toFixed(2) + ' GB'
	}
}
